package br.uff.busuffweb.model;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author jthiago
 */
@NamedQueries({
    @NamedQuery(name = "LogLocalizacao.getTodos",
    query = "select l from LogLocalizacao l order by l.id")
    
//    @NamedQuery(name = "LogLocalizacao.getPorOnibus",
//    query = "select l from LogLocalizacao l " +
//            " where l.onibus = ?")
})
@Entity
@SequenceGenerator(sequenceName = "seq_logLocalizacao", name = "Sequencia")
@Table(name = "logLocalizacao")
@XmlRootElement
public class LogLocalizacao implements Serializable {

    @Id
    @GeneratedValue(generator = "Sequencia", strategy = GenerationType.AUTO)
    private Long id;
    
    private double latitude;
    
    private double longitude;
    
    private float velocidade;
    
    private double precisao;
    
    private float direcao;
    
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date data_hora_coleta;
    
    private String provider;
    
    private int nivel_bateria;
    
    @ManyToOne
    @JoinColumn(name="idOnibus")
    private Onibus onibus;
    
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public double getLatitude() {
        return latitude;
    }

    public void setLatitude(double latitude) {
        this.latitude = latitude;
    }

    public double getLongitude() {
        return longitude;
    }

    public void setLongitude(double longitude) {
        this.longitude = longitude;
    }

    public float getVelocidade() {
        return velocidade;
    }

    public void setVelocidade(float velocidade) {
        this.velocidade = velocidade;
    }

    public double getPrecisao() {
        return precisao;
    }

    public void setPrecisao(double precisao) {
        this.precisao = precisao;
    }

    public float getDirecao() {
        return direcao;
    }

    public void setDirecao(float direcao) {
        this.direcao = direcao;
    }

    public Date getData_hora_coleta() {
        return data_hora_coleta;
    }

    public void setData_hora_coleta(Date data_hora_coleta) {
        this.data_hora_coleta = data_hora_coleta;
    }

    public String getProvider() {
        return provider;
    }

    public void setProvider(String provider) {
        this.provider = provider;
    }

    public int getNivel_bateria() {
        return nivel_bateria;
    }

    public void setNivel_bateria(int nivel_bateria) {
        this.nivel_bateria = nivel_bateria;
    }

    public Onibus getOnibus() {
        return onibus;
    }

    public void setOnibus(Onibus onibus) {
        this.onibus = onibus;
    }
}
